//package com.youka.bussiness.common.push;
//
//import cn.jiguang.common.ClientConfig;
//import cn.jiguang.common.resp.APIConnectionException;
//import cn.jiguang.common.resp.APIRequestException;
//import cn.jpush.api.JPushClient;
//import cn.jpush.api.push.PushResult;
//import cn.jpush.api.push.model.Options;
//import cn.jpush.api.push.model.Platform;
//import cn.jpush.api.push.model.PushPayload;
//import cn.jpush.api.push.model.audience.Audience;
//import cn.jpush.api.push.model.notification.IosAlert;
//import cn.jpush.api.push.model.notification.IosNotification;
//import cn.jpush.api.push.model.notification.Notification;
//import org.tinygroup.logger.Logger;
//import org.tinygroup.logger.LoggerFactory;
//
///**
// * App信息推送
// */
//public class Jpush {
//
//    /**
//     * 日志
//     */
//    private static final Logger LOGGER = LoggerFactory.getLogger(Jpush.class);
//
//    /**
//     * APk
//     */
//    private final static String APP_KEY = "f13e7fab0586a34210bd4bfb";
//
//    /**
//     * 秘钥
//     */
//    private final static String MASTER_SECRET = "dbe6c1a5ac4f2f7c49e613d3";
//
//    /**
//     * 客户端定义
//     */
//    private static JPushClient jpushClient;
//
//    /**
//     * 获取客户端连接
//     *
//     * @return
//     */
//    private static synchronized JPushClient getClient() {
//        if (jpushClient == null) {
//            jpushClient = new JPushClient(MASTER_SECRET, APP_KEY, null, ClientConfig.getInstance());
//        }
//        return jpushClient;
//    }
//
//    /**
//     * 推送
//     *
//     * @param payload
//     */
//    private static void push(PushPayload payload) {
//        try {
//            PushResult result = getClient().sendPush(payload);
//            LOGGER.infoMessage("Got result - {}", result);
//        } catch (APIConnectionException e) {
//            LOGGER.errorMessage("Connection error, should retry later", e);
//        } catch (APIRequestException e) {
//            LOGGER.errorMessage("Should review the error, and fix the request", e);
//            LOGGER.infoMessage("HTTP Status: {}", e.getStatus());
//            LOGGER.infoMessage("Error Code: {}", e.getErrorCode());
//            LOGGER.infoMessage("Error Message: {}", e.getErrorMessage());
//        }
//    }
//
//    /**
//     * 推送给全部用户
//     *
//     * @param message
//     */
//    public static void pushAll(String message) {
//        PushPayload payload = push_all(message);
//        push(payload);
//    }
//
//    /**
//     * 推送给指定用户
//     *
//     * @param userId
//     * @param message
//     */
//    public static void pushAlias(String userId, String message) {
//        PushPayload payload = push_alias(userId, message);
//        push(payload);
//    }
//
//    /**
//     * 推送安卓
//     */
//    public static void pushAliasAndroid(String message, String title) {
//        PushPayload payload = buildPushObject_android_tag_alertWithTitle(message, title);
//        push(payload);
//    }
//
//    /**
//     * 推送ios
//     */
//    public static void pushAliasIos(String message, String title) {
//        PushPayload payload = buildPushObject_ios(message, title);
//        push(payload);
//    }
//
//    /**
//     * 推送安卓 + ios
//     */
//    public static void pushAndroidIos(String message, String title) {
//        PushPayload payload = buildPushObject_android_tag_alertWithTitle(message, title);
//        push(payload);
//        PushPayload payload1 = buildPushObject_ios(message, title);
//        push(payload1);
//    }
//
//    /**
//     * 绑定推送设置
//     *
//     * @param message
//     * @return
//     */
//    private static PushPayload push_all(String message) {
//        return PushPayload.newBuilder()
//                .setPlatform(Platform.all())
//                .setAudience(Audience.all())
//                .setNotification(Notification.alert(message))
//                .setOptions(Options.newBuilder()
//                        //生产环境设置为true  测试环境设置为false
//                        .setApnsProduction(false)
//                        .build())
//                .build();
//    }
//
//    /**
//     * 绑定推送设置
//     *
//     * @param userId
//     * @param message
//     * @return
//     */
//    private static PushPayload push_alias(String userId, String message) {
//        return PushPayload.newBuilder()
//                .setPlatform(Platform.all())
//                .setAudience(Audience.alias(userId))
//                .setNotification(Notification.alert(message))
//                .setOptions(Options.newBuilder()
//                        //生产环境设置为true  测试环境设置为false
//                        .setApnsProduction(false)
//                        .build())
//                .build();
//    }
//
//    /**
//     * 推送安卓
//     *
//     * @param message 内容
//     * @param title   标题
//     * @return
//     */
//    public static PushPayload buildPushObject_android_tag_alertWithTitle(String message, String title) {
//        return PushPayload.newBuilder()
//                .setPlatform(Platform.android())
//                .setAudience(Audience.all())
//                .setNotification(Notification.android(message, title, null))
//                .build();
//    }
//
//    /**
//     * 推送ios
//     *
//     * @param message 内容
//     * @param title   标题
//     * @return
//     */
//    public static PushPayload buildPushObject_ios(String message, String title) {
//
//        IosAlert alert = IosAlert.newBuilder()
//                .setTitleAndBody(title, "", message)
//                .setActionLocKey("PLAY")
//                .build();
//        return PushPayload.newBuilder()
//                .setPlatform(Platform.ios())
//                .setAudience(Audience.all())
//                .setNotification(Notification.newBuilder()
//                        .addPlatformNotification(IosNotification.newBuilder()
//                                .setAlert(alert)
//                                .setBadge(5)
//                                .setSound("happy")
//                                .addExtra("from", "JPush")
//                                .build())
//                        .build())
//                .setOptions(Options.newBuilder()
//                        .setApnsProduction(false)
//                        .build())
//                .build();
//
//    }
//
//    public static void main(String[] args) {
//        pushAliasIos("尊敬的麦家鸿包用户：为配合公司休息，公司会对现有业务进行调整升级，详见公告！", "7月32号放假公告");
//        pushAliasAndroid("尊敬的麦家鸿包用户：为配合公司休息，公司会对现有业务进行调整升级，详见公告！", "7月32号放假公告");
//    }
//}